package libaryinterface;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import static javax.swing.ScrollPaneLayout.*;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User: YKH
 * Date: 2022-05-15
 * Time: 18:50
 * author:DisplayInterface
 */
public class DisplayInterface extends JFrame {

    public DisplayInterface(ResultSet result) throws SQLException {
        //设置窗口
        super("展示界面");
        Container container = this.getContentPane();

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setBounds(200,200,1000,800);
        //设置标签
        JLabel label = new JLabel("找到的书: ");
        label.setBounds(100,20,150,40);
        label.setFont(new Font(null, Font.PLAIN, 20));
        label.setForeground(Color.GREEN);
        container.add(label);

        // 表头（列名）
        Object[][] rowData = new Object[100][6];
        int i =0;
        String[] columnNames = {" SNID","书名", "作者", " 出版社 ", "是否借出", "借阅人"};

        while( true ) {
            //获取信息
            String snid = result.getString("SNID");
            String name = result.getString("name");
            String author = result.getString("author");
            String press = result.getString("press");
            String isborrow = result.getString("isBorrow");
            String borrow = result.getString("Borrower");

            //放入表格数组中
            rowData[i][0] = snid;
            rowData[i][1] = name;
            rowData[i][2] = author;
            rowData[i][3] = press;
            rowData[i][4] = isborrow;
            rowData[i][5] = borrow;
            i++;
            if( !result.next() )
            {
                break;
            }
        }
        // 创建一个表格，指定 表头 和 所有行数据
        JTable table = new JTable(rowData, columnNames);

        // 设置表格内容颜色
        table.setForeground(Color.BLACK);                   // 字体颜色
        table.setFont(new Font(null, Font.PLAIN, 14));      // 字体样式
        table.setSelectionForeground(Color.DARK_GRAY);      // 选中后字体颜色
        table.setSelectionBackground(Color.LIGHT_GRAY);     // 选中后字体背景
        table.setGridColor(Color.GRAY);                     // 网格颜色
        // 设置表头
        table.getTableHeader().setFont(new Font(null, Font.BOLD, 20));  // 设置表头名称字体样式
        table.getTableHeader().setForeground(Color.RED);                // 设置表头名称字体颜色
        table.getTableHeader().setResizingAllowed(true);               // 设置不允许手动改变列宽
        table.getTableHeader().setReorderingAllowed(false);             // 设置不允许拖动重新排序各列

        // 设置行高
        table.setRowHeight(40);

        // 第一列列宽设置为40
        table.getColumnModel().getColumn(0).setPreferredWidth(40);

        // 设置滚动面板视口大小（超过该大小的行数据，需要拖动滚动条才能看到）
        table.setPreferredScrollableViewportSize(new Dimension(400, 300));
        // 把 表格 放到 滚动面板 中（表头将自动添加到滚动面板顶部）
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setBounds(100,100,700,600);
        // 添加 滚动面板 到 内容面板
        container.add(scrollPane);

        //修改按钮
        JButton button = new JButton("修改");
        button.setBounds(400,710,100,30);
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取当前的行列数
                int index = table.getSelectedRow();  //1
                new UpdateInterface(rowData,index);
            }
        });
        container.add(button);
        //获得容器
        container.setBackground(new Color(50, 144, 236));
        setBounds(1,1,1000,800);
        container.setLayout(null);
        setVisible(true);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    }
}
